package com.shrcl.engineerprocess.domain;

import com.shrcl.engineerprocess.domain.TSCServiceType;
import com.shrcl.engineerprocess.domain.TSCServiceTypeCategory;
import com.shrcl.engineerprocess.domain.TSCServiceTypeOptionItem;
import edu.fudan.mylang.pf.IDAOService;
import java.util.Collection;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;

public interface TSCServiceTypeDAO extends IDAOService<TSCServiceType> {
  public abstract TSCServiceType create(final Procedure1<? super TSCServiceType> init);
  
  public abstract Collection<TSCServiceType> getAllTSCServiceType();
  
  public abstract void delete(final TSCServiceType serviceType);
  
  public abstract void obsolete(final TSCServiceType serviceType);
  
  public abstract void recover(final TSCServiceType serviceType);
  
  public abstract Collection<TSCServiceTypeOptionItem> findByCategoryAndTypeName(final TSCServiceTypeCategory category, final String name);
  
  public abstract Boolean isExisting(final String name);
}
